chore(packaging): Guix-only — remove flake.nix, add a real guix.scm - #211
Conversation
The estate retired the Nix fallback on 2026-05-18. `flake.nix` was nonetheless added to this repo on 2026-07-21 by #187, i.e. *after* the ruling, and `guix.scm` has never existed here — so verisimdb has been carrying the retired tier and none of the current one. It is also the repo's lone `SupplyChain` finding: `panic-attack assail` flags `flake.nix` for declaring inputs without `narHash` and having no sibling `flake.lock`. The packaging-policy question and the security finding are the same file, which is unusually tidy. **What is lost: nothing.** `flake.nix` was a dev shell, not a package build, and said so in its own header — it declared `just cargo rustc rustfmt clippy`. The new `guix.scm` is the one-for-one replacement (`guix shell -m guix.scm`) and covers strictly more: it adds `elixir`/`erlang` for `elixir-orchestration/`, `coq` for the nine modules gated by `coq-build.yml`, and `reuse` for the compliance check — all things this repo actually uses and the flake omitted. Two deliberate choices, both stated in the file header so nobody has to reverse-engineer them: **It is a manifest, not a `(package ...)` with `cargo-build-system`.** A correct `#:cargo-inputs` for a 17-crate workspace needs every transitive crate pinned. A definition that looked like a package build while failing to produce one would be worse than an honest manifest — this estate already has enough artefacts that satisfy a presence check without doing anything. Promote it when someone can build and verify it end to end. **It is NOT written from a template, and that matters here.** Guix is not installed on this machine, so I could not evaluate the file; the header says so rather than implying it was tested. I also checked the obvious shortcut — the existing estate `guix.scm` files — and did not use them, because they are corrupt. `meta-repos/burble`, `meta-repos/gossamer` and `meta-repos/paint-type` carry a **byte-identical 18-line file** declaring: (name "squisher-corpus") (home-page "https://github.com/hyperpolymath/squisher-corpus") (license ... "PMPL-1.0-or-later" ...) Three unrelated projects, all claiming to be squisher-corpus, all under Palimpsest rather than their own licence. That is the known clobber incident, still live in at least those three. Copying one here would have imported a wrong identity and a wrong licence into a repo whose `META.a2ml` AD-006 explicitly records "MPL-2.0 across the workspace (no AGPL)". `docs/rsr-compliance.adoc:164` still lists "`guix.scm` OR `flake.nix`" and is left alone — it describes the RSR standard's requirement, which this change satisfies, and rewriting a description of an external standard is not mine to do unilaterally. Verified: `reuse lint` 775/775 compliant; no remaining `flake.nix`/`flake.lock` reference anywhere except the rsr-compliance line above. **Needs a follow-up run:** `guix shell -m guix.scm -- true` on a machine with Guix, to confirm every specification name resolves. If one has drifted, fix the name — do not delete the file.
|
Note Automatic reviews are paused because your trial's included automatic processing has been used for this period. Upgrade now, or comment "Gitar review" to run a review anytime. Code Review ✅ Approved 1 resolved / 1 findingsReplaces flake.nix with a Guix manifest, but the specification uses "rust:rustfmt" which is not a valid output since rustfmt ships in the "tools" output. ✅ 1 resolved✅ Bug: "rust:rustfmt" is likely not a valid rust output
OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
chore(packaging): Guix-only — remove flake.nix, add a real guix.scm
The estate retired the Nix fallback on 2026-05-18.
flake.nixwas nonethelessadded to this repo on 2026-07-21 by #187, i.e. after the ruling, and
guix.scmhas never existed here — so verisimdb has been carrying the retired tier and
none of the current one.
It is also the repo's lone
SupplyChainfinding:panic-attack assailflagsflake.nixfor declaring inputs withoutnarHashand having no siblingflake.lock. The packaging-policy question and the security finding are thesame file, which is unusually tidy.
What is lost: nothing.
flake.nixwas a dev shell, not a package build, andsaid so in its own header — it declared
just cargo rustc rustfmt clippy. Thenew
guix.scmis the one-for-one replacement (guix shell -m guix.scm) andcovers strictly more: it adds
elixir/erlangforelixir-orchestration/,coqfor the nine modules gated bycoq-build.yml, andreusefor thecompliance check — all things this repo actually uses and the flake omitted.
Two deliberate choices, both stated in the file header so nobody has to
reverse-engineer them:
It is a manifest, not a
(package ...)withcargo-build-system. A correct#:cargo-inputsfor a 17-crate workspace needs every transitive crate pinned.A definition that looked like a package build while failing to produce one would
be worse than an honest manifest — this estate already has enough artefacts that
satisfy a presence check without doing anything. Promote it when someone can
build and verify it end to end.
It is NOT written from a template, and that matters here. Guix is not
installed on this machine, so I could not evaluate the file; the header says so
rather than implying it was tested. I also checked the obvious shortcut — the
existing estate
guix.scmfiles — and did not use them, because they arecorrupt.
meta-repos/burble,meta-repos/gossamerandmeta-repos/paint-typecarry a byte-identical 18-line file declaring:
Three unrelated projects, all claiming to be squisher-corpus, all under
Palimpsest rather than their own licence. That is the known clobber incident,
still live in at least those three. Copying one here would have imported a wrong
identity and a wrong licence into a repo whose
META.a2mlAD-006 explicitlyrecords "MPL-2.0 across the workspace (no AGPL)".
docs/rsr-compliance.adoc:164still lists "guix.scmORflake.nix" and isleft alone — it describes the RSR standard's requirement, which this change
satisfies, and rewriting a description of an external standard is not mine to do
unilaterally.
Verified:
reuse lint775/775 compliant; no remainingflake.nix/flake.lockreference anywhere except the rsr-compliance line above.
Needs a follow-up run:
guix shell -m guix.scm -- trueon a machine withGuix, to confirm every specification name resolves. If one has drifted, fix the
name — do not delete the file.